// include/characters/enemies/SpecimenEnemy.hh
#ifndef CHARACTERS_ENEMIES_SPECIMEN_ENEMY_HH
#define CHARACTERS_ENEMIES_SPECIMEN_ENEMY_HH

#include "characters/enemies/Enemy.hh"
#include <string>

/**
 * @class SpecimenEnemy
 * @brief Represents a lab specimen or experimental enemy type.
 *
 * This class could simulate enemies created or mutated in experiments,
 * possibly with unpredictable or unstable traits.
 */

class SpecimenEnemy : public Enemy
{
private:
    static const unsigned SELF_DESTRUCT_THRESHOLD = 480; 
    bool willSelfDestruct = false;                       

public:
    SpecimenEnemy();

    virtual ~SpecimenEnemy() override = default;

    virtual bool attack(ICharacter &target) override; //gai

    virtual bool takeDamage(unsigned damage) override;

    bool isAboutToSelfDestruct() const;
    unsigned getSelfDestructDamage() const; 
};
#endif 
